package gwtgaetools.client.ui;

import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Widget;

public class PropertiesGrid extends Grid {

	public PropertiesGrid(int width) {
		super(0, 2);
		getColumnFormatter().getElement(0).getStyle().setWidth(width, Unit.PX);

	}

	public int addProperty(String name, Widget w) {
		if (name.length() > 0)
			name = name + ":";
		InlineLabel label = new InlineLabel(name);
		return addProperty(label, w);
	}

	public int addProperty(Widget label,
			Widget w) {
		return addProperty(label, w, getRowCount());
	}

	public int addProperty(Widget label, Widget w, int row) {
		insertRow(row);
		setWidget(row, 0, label);
		setWidget(row, 1, w);
		return row;
	}
	
	public void setRowVisible(int row, boolean b) {
		getWidget(row, 0).setVisible(b);
		getWidget(row, 1).setVisible(b);		
	}

	public boolean removeProperty(Widget w) {
		for (int i=0; i<numRows; i++) {
			if (getWidget(i, 1).equals(w)) {
				removeRow(i);
				return true;
			}
		}
		return false;
	}
}
